package com.gjzhao.fmmall.dao;

import com.gjzhao.fmmall.entity.Product;
import com.gjzhao.fmmall.generator.GeneralMapper;
import com.gjzhao.fmmall.vo.ProductVO;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface ProductMapper extends GeneralMapper<Product> {

    /**
     * 查询新上架推荐商品列表
     *
     * @return
     */
    List<Product> selectRecommendProductList();

    /**
     * 获取该分类下的排名前六的商品信息
     *
     * @param categoryId
     * @return
     */
    List<ProductVO> selectTop6ByCategory(String categoryId);


    /**
     * 获取三级分类下的商品信息（分页列表查询）
     *
     * @param categoryId
     * @param start
     * @param limit
     * @return
     */
    List<ProductVO> selectProductByCategoryId(@Param("categoryId") String categoryId,
                                              @Param("start") Integer start,
                                              @Param("limit") Integer limit);


    /**
     * 根据类别id查询此类别下的商品的品牌列表
     *
     * @param categoryId
     * @return
     */
    List<String> selectBrandByCategoryId(int categoryId);


    /**
     * 根据关键词查询商品信息
     *
     * @param keyword
     * @param start
     * @param limit
     * @return
     */
    List<ProductVO> selectProductByKeyword(@Param("keyword") String keyword,
                                           @Param("start") Integer start,
                                           @Param("limit") Integer limit);


    /**
     * 根据关键词查询出来的商品的所有品牌信息
     *
     * @param keyword
     * @return
     */
    List<String> selectBrandsByKeyword(String keyword);


    /**
     * 查询所有商品信息
     *
     * @return
     */
    List<ProductVO> selectAllProducts();
}